#文件夹中有__init__.py 该文件夹作为一个包 在该文件中初始化app对象
from flask import Flask
import os
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from config import config_map
# pip install flask-sqlalchemy==3.0.2
# pip install flask-migrate==4.0.0
# pip install pymysql==1.0.2



#创建数据库SQLALCHEMY实例
db=SQLAlchemy()

#创建app对象 config_name传参 表示开发模式
def create_app(config_name):
    app=Flask(__name__)
    #根据config_name获取配置类
    Config= config_map.get(config_name)
    # 根据类来加载配置信息
    app.config.from_object(Config)
    app.json.ensure_ascii = False

    #由于蓝图对象都需要挂载 需要获取蓝图对象在app中进行注册
    from flask_shop.user import user_bp
    #注册蓝图
    app.register_blueprint(user_bp)

    from flask_shop.menu import menu_bp
    app.register_blueprint(menu_bp)

    from flask_shop.test import test_bp
    app.register_blueprint(test_bp)
    
    #初始化db
    db.init_app(app)
    return app


